// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者，助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件，未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------

// import {
// 	pathToBase64
// } from '@/plugin/image-tools/index.js';
export default {
	
	
	// 分享海报
	userPosterCanvas: function(arr2, nickname, sitename, zhubo,index, w, h, successFn) {
		let that = this;
		const ctx = uni.createCanvasContext('myCanvas' + index);
		ctx.clearRect(0, 0, 0, 0);
		/**
		 * 只能获取合法域名下的图片信息,本地调试无法获取
		 * 
		 */
		console.log(sitename)
		uni.getImageInfo({
			src: arr2[1],
			success: function(res) {
				console.log(res)
				const WIDTH = res.width;
				const HEIGHT = res.height;
				// ctx.fillStyle = '#fff';
				ctx.fillRect(0, 0,w, h,);
				ctx.drawImage(arr2[1], 0, 0,w, h,);
	
				// x:240 y:426
				let codex = 0.145
				let codey = 0.655
				let codeSize = 0.25666
				let codeSizes = 0.14666
				let namex = 0.448
				let namey = 0.265
				let markx = 0.363
				let marky = 0.515
				let zbkx = 0.503
				let zbky = 0.560
				ctx.drawImage(arr2[0], w * codex, h * codey, w * codeSize, w * codeSize);
				
				if (w < 270) {
					ctx.setFontSize(14);
				} else {
					ctx.setFontSize(14);
					ctx.setFillStyle('#666');
				}
				ctx.fillText(sitename, w * markx, h * marky);
				
				if (w < 270) {
					ctx.setFontSize(13);
				} else {
					ctx.setFontSize(13);
					ctx.setFillStyle('#666');
				}
				ctx.fillText(zhubo, w * zbkx, h * zbky);
				if (w < 270) {
					ctx.setFontSize(14);
				} else {
					ctx.setFontSize(14);
					ctx.setFillStyle('#666');
				}
				ctx.fillText(nickname, w * namex, h * namey);
				// ctx.beginPath();
				// ctx.arc(w * namex, h * namey, w * namex, 0, Math.PI * 2);
				// ctx.clip(); 
				// ctx.drawImage(arr2[2], w * namex, h * namey, w * codeSizes, w * codeSizes);
				ctx.save();
				ctx.draw(true, function() {
					uni.canvasToTempFilePath({
						canvasId: 'myCanvas' + index,
						fileType: 'png',
						quality: 1,
						success: function(res) {
							console.log(res)
							successFn && successFn(res.tempFilePath);
						}
					})
				});
			},
			fail: function(err) {
				uni.hideLoading();
				uni.showToast({
					title:  "无法获取图片信息~",
					icon: 'none',
					duration:1000
				})
			}
		})
	},
	href(url) {
		uni.navigateTo({
			url: url
		});
	},
	$h: {
		//除法函数，用来得到精确的除法结果
		//说明：javascript的除法结果会有误差，在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
		//调用：$h.Div(arg1,arg2)
		//返回值：arg1除以arg2的精确结果
		Div: function(arg1, arg2) {
			arg1 = parseFloat(arg1);
			arg2 = parseFloat(arg2);
			var t1 = 0,
				t2 = 0,
				r1, r2;
			try {
				t1 = arg1.toString().split(".")[1].length;
			} catch (e) {}
			try {
				t2 = arg2.toString().split(".")[1].length;
			} catch (e) {}
			r1 = Number(arg1.toString().replace(".", ""));
			r2 = Number(arg2.toString().replace(".", ""));
			return this.Mul(r1 / r2, Math.pow(10, t2 - t1));
		},
		//加法函数，用来得到精确的加法结果
		//说明：javascript的加法结果会有误差，在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
		//调用：$h.Add(arg1,arg2)
		//返回值：arg1加上arg2的精确结果
		Add: function(arg1, arg2) {
			arg2 = parseFloat(arg2);
			var r1, r2, m;
			try {
				r1 = arg1.toString().split(".")[1].length
			} catch (e) {
				r1 = 0
			}
			try {
				r2 = arg2.toString().split(".")[1].length
			} catch (e) {
				r2 = 0
			}
			m = Math.pow(100, Math.max(r1, r2));
			return (this.Mul(arg1, m) + this.Mul(arg2, m)) / m;
		},
		//减法函数，用来得到精确的减法结果
		//说明：javascript的加法结果会有误差，在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。
		//调用：$h.Sub(arg1,arg2)
		//返回值：arg1减去arg2的精确结果
		Sub: function(arg1, arg2) {
			arg1 = parseFloat(arg1);
			arg2 = parseFloat(arg2);
			var r1, r2, m, n;
			try {
				r1 = arg1.toString().split(".")[1].length
			} catch (e) {
				r1 = 0
			}
			try {
				r2 = arg2.toString().split(".")[1].length
			} catch (e) {
				r2 = 0
			}
			m = Math.pow(10, Math.max(r1, r2));
			//动态控制精度长度
			n = (r1 >= r2) ? r1 : r2;
			return ((this.Mul(arg1, m) - this.Mul(arg2, m)) / m).toFixed(n);
		},
		//乘法函数，用来得到精确的乘法结果
		//说明：javascript的乘法结果会有误差，在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
		//调用：$h.Mul(arg1,arg2)
		//返回值：arg1乘以arg2的精确结果
		Mul: function(arg1, arg2) {
			arg1 = parseFloat(arg1);
			arg2 = parseFloat(arg2);
			var m = 0,
				s1 = arg1.toString(),
				s2 = arg2.toString();
			try {
				m += s1.split(".")[1].length
			} catch (e) {}
			try {
				m += s2.split(".")[1].length
			} catch (e) {}
			return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
		},
	},
	

}
